package com.xy.lang.enums;

/**
 *
 * @param <E>   The enum type subclass
 */
public interface CodeEnum<E extends Enum<E>> {

    /**
     * 枚举编码
     *
     * @return
     */
    int getCode();

    /**
     * 枚举编码是否与指定的编码相同
     *
     * @param target
     * @return
     */
    default boolean equalsTo(Integer target) {
        return null != target && getCode() == target.intValue();
    }

    /**
     * 枚举编码是否与指定的编码相同
     *
     * @param target
     * @return
     */
    default boolean equalsTo(int target) {
        return getCode() == target;
    }

}
